// 6.1 原型链示例
function Shape() {
    this.name = 'Shape';
    this.toString = function() {
        return this.name;
    };
}

function TwoDShape() {
    this.name = '2D shape';
}

function Triangle(side, height) {
    this.name = 'Triangle';
    this.side = side;
    this.height = height;
    this.getArea = function() {
        return this.side * this.height / 2;
    };
}
TwoDShape.prototype = new Shape();
Triangle.prototype = new TwoDShape();

// 更换prototype时，需要重置constructor
TwoDShape.prototype.constructor = TwoDShape;
Triangle.prototype.constructor = Triangle;

